package com.fqgj.sentry.policy.dao;

import com.fqgj.common.base.BaseMapper;
import com.fqgj.sentry.policy.dao.param.ColumnMap;
import com.fqgj.sentry.policy.entity.PcColumnEntity;

import java.util.List;
import java.util.Set;

/**
 * User: liupengpeng
 * Date: 2017-07-25
 * Time: 15:42:44.760
 */

public interface PcColumnDao extends BaseMapper<PcColumnEntity> {
    /**
     * 通过商户id和字段名选择字段
     *
     * @return
     */
    PcColumnEntity selectByMerchantIdAndColumnCode(Long merchantId, String columnCode);

    /**
     * 根据字段名  删除
     *
     * @param columnCode
     * @return
     */
    Integer deleteBuColumnCode(Long merchantId, String columnCode);

    /**
     * 查询字段列表
     *
     * @param columnMap
     * @return
     */
    List<PcColumnEntity> selectColumnList(ColumnMap columnMap);


    /**
     * 根据事件id查询字段列表
     *
     * @param eventId
     * @return
     */
    List<PcColumnEntity> selectByEventId(Long eventId, Integer columnType);

    /**
     * 根据事件id查询字段列表
     *
     * @param eventIds
     * @return
     */
    List<PcColumnEntity> selectByMerchantIdAndEventId(Long merchantId,
                                                      List<Long> eventIds,
                                                      Integer columnType);


    /**
     * 获取模块下面的字段类型
     * @param moduleCodes
     * @return
     */
    List<PcColumnEntity> selectByModuleCodes(List<String> moduleCodes);


    /**
     *
     * @param columnCodes
     * @return
     */
    List<PcColumnEntity> selectListByColumCodes(Set<String> columnCodes);




}